#ifndef MAP_H
#define MAP_H

#include <string>
#include <vector>

#include "double-linked-list.h"
#include "object.h"
#include "random.h"

class Map
{
public:
	Map(Mersenne_Twister *, /*Double_Linked_List *,*/ std::string);
	~Map();
//	bool isBlocked(Object *, Object *);
	bool isBlocked(int, int);
	bool isEmpty(int, int);
	char display(int, int);
	int height();
	int level();
	int width();
	Object *isAt(int, int);
	void add(int, int, Object *);
	void refresh();
	void set(Object *);
private:
	int HEIGHT;
	int LEVEL;
	int WIDTH;
	Mersenne_Twister *RNG;
	std::vector< std::vector< Double_Linked_List * > > MAP;
	void loadMap(std::string);
	void printMap();
};

#endif


